package cn.edu.ruc.kafka.query; import cn.edu.ruc.kafka.connection.ConsumerConnection; import cn.edu.ruc.kafka.exception.NoPartitionsException; import cn.edu.ruc.kafka.exception.TopicNotFoundException; import cn.edu.ruc.kafka.resultset.PartitionMetadataResultSet; import cn.edu.ruc.kafka.resultset.ResultSet; import cn.edu.ruc.kafka.resultset.ResultSetMetaData; import kafka.javaapi.PartitionMetadata; import java.sql.Types; import java.util.ArrayList; import java.util.List; /** * @author Bian Haoqiong */ public class GetAllPartitionsMetadata implements QueryExecutor { @Override public ResultSet execute(ConsumerConnection connection, String... params) throws TopicNotFoundException, NoPartitionsException { List<PartitionMetadata> metadata = null; List<String> columns = new ArrayList<String>(); List<Integer> types = new ArrayList<Integer>(); List<String> typeClassNames = new ArrayList<String>(); columns.add("leader"); types.add(Types.BINARY); typeClassNames.add("kafka.cluster.Broker"); columns.add("partitionId"); types.add(Types.INTEGER); typeClassNames.add("java.lang.Integer"); columns.add("sizeInBytes"); types.add(Types.INTEGER); typeClassNames.add("java.lang.Integer"); metadata = connection.getAllPartsMetadata(); return new PartitionMetadataResultSet(metadata, new ResultSetMetaData(columns, types, typeClassNames)); } }